package fr.adfm.dto;

import java.io.Serializable;

public class ProduitDto implements Serializable {
	
	private static final long serialVersionUID = 1L;
	
	private Long id;
	private String libelle;
	private String description;
	private String refFournisseur;
	private Boolean valide;
	private Double prix;
	private Double prixFournisseurHT;
	private Double TVA;
	private MarqueDto marque;

	protected ProduitDto(Long id, String libelle, String description,
			String refFournisseur, Boolean valide, Double prix,
			Double prixFournisseurHT, Double tVA, MarqueDto marque) {
		super();
		this.id = id;
		this.libelle = libelle;
		this.description = description;
		this.refFournisseur = refFournisseur;
		this.valide = valide;
		this.prix = prix;
		this.prixFournisseurHT = prixFournisseurHT;
		TVA = tVA;
		this.marque = marque;
	}

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}
	
	public String getLibelle() {
		return libelle;
	}
	
	public void setLibelle(String libelle) {
		this.libelle = libelle;
	}
	
	public ProduitDto(String libelle, double prix, String description) {
		super();
		this.libelle = libelle;
		this.prix = prix;
		this.description = description;
	}
	
	public void setDescription(String description) {
		this.description = description;
	}
	

	public void setPrix(double prix) {
		this.prix = prix;
	}
	public String getDescription() {
		return description;
	}
	public ProduitDto() {
		super();
	}

	public String getRefFournisseur() {
		return refFournisseur;
	}


	public void setRefFournisseur(String refFournisseur) {
		this.refFournisseur = refFournisseur;
	}


	public Boolean getValide() {
		return valide;
	}


	public void setValide(Boolean valide) {
		this.valide = valide;
	}


	public Double getPrix() {
		return prix;
	}


	public void setPrix(Double prix) {
		this.prix = prix;
	}


	public Double getPrixFournisseurHT() {
		return prixFournisseurHT;
	}


	public void setPrixFournisseurHT(Double prixFournisseurHT) {
		this.prixFournisseurHT = prixFournisseurHT;
	}


	public Double getTVA() {
		return TVA;
	}


	public void setTVA(Double tVA) {
		TVA = tVA;
	}


	public MarqueDto getMarque() {
		return marque;
	}


	public void setMarque(MarqueDto marque) {
		this.marque = marque;
	}

	@Override
	public String toString() {
		return "Produit id=" + id + ", libelle=" + libelle
				+ ", description=" + description + ", refFournisseur="
				+ refFournisseur + ", valide=" + valide + ", prix=" + prix
				+ ", prixFournisseurHT=" + prixFournisseurHT + ", TVA=" + TVA
				+ ", marque=" + marque;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((description == null) ? 0 : description.hashCode());
		result = prime * result + ((libelle == null) ? 0 : libelle.hashCode());
		result = prime * result + ((marque == null) ? 0 : marque.hashCode());
		result = prime * result + ((prix == null) ? 0 : prix.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		ProduitDto other = (ProduitDto) obj;
		if (description == null) {
			if (other.description != null)
				return false;
		} else if (!description.equals(other.description))
			return false;
		if (libelle == null) {
			if (other.libelle != null)
				return false;
		} else if (!libelle.equals(other.libelle))
			return false;
		if (marque == null) {
			if (other.marque != null)
				return false;
		} else if (!marque.equals(other.marque))
			return false;
		if (prix == null) {
			if (other.prix != null)
				return false;
		} else if (!prix.equals(other.prix))
			return false;
		return true;
	}
	
	
}
